#ifndef _TD_RESOURCE_H_
#define _TD_RESOURCE_H_

/************************************************************************/
/* STL                                                                  */
/************************************************************************/
#include <string>

/************************************************************************/
/* SDL                                                                  */
/************************************************************************/
#include "SDL/SDL.h"
#include "SDL/SDL_audio.h"


using namespace std;

namespace TD_Resources {

	class Resource {

	protected:	
		string m_name;

	public:

		/************************************************************************/
		/* Constructors				                                            */
		/************************************************************************/
		//Constructor default
		explicit Resource();

		//Copy constructor 
		explicit Resource(const Resource &rhs);

		//Assignment constructor
		Resource & operator=(const Resource &rhs);

		//Initialization constructor
		explicit Resource(const string &g_name);


		/************************************************************************/
		/* Access functions                                                     */
		/************************************************************************/
		inline const string & getName() const {
			return (m_name);
		}

		inline void setName(const string &g_name) {
			m_name = g_name;
		}

		/************************************************************************/
		/* Pure virtual                                                         */
		/************************************************************************/
		//Just to the compiler detect that this class is polymorphic ^^
		virtual void render(SDL_Surface *g_destSurface, unsigned int deltaTime);

	};

}

#endif
